package cn.iocoder.yudao.module.wine.controller.app.supplyorder.vo;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.time.LocalDateTime;

@Schema(description = "app - 供求订单管理 Response VO")
@Data
@ExcelIgnoreUnannotated
public class AppSupplyOrderRespVO {
    @Schema(description = "订单编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "697")
    @ExcelProperty("订单编号")
    private Long id;

    @Schema(description = "订单流水号", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("订单流水号")
    private String no;

    @Schema(description = "订单类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
    @ExcelProperty("订单类型")
    private Integer type;

    @Schema(description = "订单来源终端", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("订单来源终端")
    private Integer terminal;


    @Schema(description = "卖方用户ID(卖方ID)", example = "14038")
    @ExcelProperty("卖方用户ID(卖方ID)")
    private Long saleUserId;

    @Schema(description = "卖方备注", example = "你猜")
    @ExcelProperty("卖方备注")
    private String saleUserRemark;

    @Schema(description = "购买用户编号(买方ID)", requiredMode = Schema.RequiredMode.REQUIRED, example = "22941")
    @ExcelProperty("购买用户编号(买方ID)")
    private Long buyUserId;

    @Schema(description = "购买用户备注", example = "你说的对")
    @ExcelProperty("购买用户备注")
    private String buyUserRemark;

    @Schema(description = "订单状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    @ExcelProperty("订单状态")
    private Integer status;

    @Schema(description = "购买的数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "30762")
    @ExcelProperty("购买的数量")
    private Integer productCount;

    @Schema(description = "购买的箱量", requiredMode = Schema.RequiredMode.REQUIRED, example = "30762")
    @ExcelProperty("购买的箱量")
    private Integer productQuantity;

    @Schema(description = "取消类型", example = "1")
    @ExcelProperty("取消类型")
    private Integer cancelType;

    @Schema(description = "交易类型：1--担责，2--担保", example = "2")
    @ExcelProperty("交易类型：1--担责，2--担保")
    private Integer tradeType;

    @Schema(description = "是否评价", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    @ExcelProperty("是否评价")
    private Integer commentStatus;

    @Schema(description = "推广人编号", example = "6738")
    @ExcelProperty("推广人编号")
    private Long brokerageUserId;

    @Schema(description = "支付订单编号", example = "4563")
    @ExcelProperty("支付订单编号")
    private Long payOrderId;

    @Schema(description = "货款是否已支付：[0:未支付 1:已经支付过]", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    @ExcelProperty("货款是否已支付：[0:未支付 1:已经支付过]")
    private Integer payStatus;

    @Schema(description = "订单支付时间")
    @ExcelProperty("订单支付时间")
    private LocalDateTime payTime;

    @Schema(description = "支付成功的支付渠道")
    @ExcelProperty("支付成功的支付渠道")
    private String payChannelCode;

    @Schema(description = "订单完成时间")
    @ExcelProperty("订单完成时间")
    private LocalDateTime finishTime;

    @Schema(description = "订单取消时间")
    @ExcelProperty("订单取消时间")
    private LocalDateTime cancelTime;

    @Schema(description = "商品原价（总），单位：分", requiredMode = Schema.RequiredMode.REQUIRED, example = "27080")
    @ExcelProperty("商品原价（总），单位：分")
    private Integer totalPrice;

    @Schema(description = "应付金额（总），单位：分", requiredMode = Schema.RequiredMode.REQUIRED, example = "15120")
    @ExcelProperty("应付金额（总），单位：分")
    private Integer payPrice;

    @Schema(description = "保费金额（总），单位：分", example = "26150")
    @ExcelProperty("保费金额（总），单位：分")
    private Integer premiumPrice;

    @Schema(description = "保费是否已支付：[0:未支付 1:已经支付过]", example = "2")
    @ExcelProperty("保费是否已支付：[0:未支付 1:已经支付过]")
    private Integer premiumStatus;

    @Schema(description = "配送类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
    @ExcelProperty("配送类型")
    private Integer deliveryType;

    @Schema(description = "发货时间")
    @ExcelProperty("发货时间")
    private LocalDateTime deliveryTime;

    @Schema(description = "发货凭证图")
    @ExcelProperty("发货凭证图")
    private String deliveryImages;

    @Schema(description = "发货物流公司编号", example = "1427")
    @ExcelProperty("发货物流公司编号")
    private Long logisticsId;

    @Schema(description = "物流公司单号")
    @ExcelProperty("物流公司单号")
    private String logisticsNo;

    @Schema(description = "收货时间")
    @ExcelProperty("收货时间")
    private LocalDateTime receiveTime;

    @Schema(description = "收件人名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六")
    @ExcelProperty("收件人名称")
    private String receiverName;

    @Schema(description = "收件人手机", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("收件人手机")
    private String receiverMobile;

    @Schema(description = "收件人地区编号", example = "25107")
    @ExcelProperty("收件人地区编号")
    private Integer receiverAreaId;

    @Schema(description = "收件人公司名称", example = "赵六")
    @ExcelProperty("收件人公司名称")
    private String receiverCompanyName;

    @Schema(description = "收件人详细地址")
    @ExcelProperty("收件人详细地址")
    private String receiverDetailAddress;

    @Schema(description = "验货视频")
    @ExcelProperty("验货视频")
    private String receiverVideo;

    @Schema(description = "平台操作状态：0--未收款，1--已收款，2--已打款，4--有纠纷", example = "2")
    @ExcelProperty("平台操作状态：0--未收款，1--已收款，2--已打款，4--有纠纷")
    private Integer operateStatus;

    @Schema(description = "平台操作备注", example = "随便")
    @ExcelProperty("平台操作备注")
    private String remark;

    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("创建时间")
    private LocalDateTime createTime;

    @Schema(description = "头像", requiredMode = Schema.RequiredMode.REQUIRED, example = "头像")
    private String buyAvatar;

    @Schema(description = "地区", requiredMode = Schema.RequiredMode.REQUIRED, example = "地区")
    private Integer buyAreaId;

    @Schema(description = "用户昵称", requiredMode = Schema.RequiredMode.REQUIRED, example = "用户昵称")
    @ExcelProperty("用户昵称")
    private String buyNickname;

    @Schema(description = "用户真实姓名", requiredMode = Schema.RequiredMode.REQUIRED, example = "用户真实姓名")
    @ExcelProperty("用户真实姓名")
    private String buyName;

    @Schema(description = "信用等级图标", example = "信用等级图标")
    private String buyIcon;
    @Schema(description = "信用等级图标", example = "信用等级图标")
    private String buyCreditName;
    @Schema(description = "商家信用等级", example = "商家信用等级")
    private Integer buyCreditId;
    @Schema(description = "保证金内容",example = "保证金内容")
    private String buyBondName;


    @Schema(description = "会员类型名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "会员类型名称")
    private String buyMemberTypeName;

    @Schema(description = "会员类型图标", requiredMode = Schema.RequiredMode.REQUIRED, example = "会员类型图标")
    private String buyMemberTypeIcon;

    @Schema(description = "发货地址", requiredMode = Schema.RequiredMode.REQUIRED, example = "发货地址")
    private String saleDeliveryAddress;

    @Schema(description = "卖家公司名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "卖家公司名称")
    private String saleCompanyName;


    @Schema(description = "头像", requiredMode = Schema.RequiredMode.REQUIRED, example = "头像")
    private String saleAvatar;

    @Schema(description = "地区", requiredMode = Schema.RequiredMode.REQUIRED, example = "地区")
    private Integer saleAreaId;

    @Schema(description = "用户真实姓名", requiredMode = Schema.RequiredMode.REQUIRED, example = "用户真实姓名")
    @ExcelProperty("用户真实姓名")
    private String saleName;

    @Schema(description = "信用等级图标",  example = "信用等级图标")
    private String saleIcon;
    @Schema(description = "信用等级图标", example = "信用等级图标")
    private String saleCreditName;
    @Schema(description = "商家信用等级", example = "商家信用等级")
    private Integer saleCreditId;
    @Schema(description = "保证金内容",example = "保证金内容")
    private String saleBondName;

    @Schema(description = "会员类型名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "会员类型名称")
    private String saleMemberTypeName;

    @Schema(description = "会员类型图标", requiredMode = Schema.RequiredMode.REQUIRED, example = "会员类型图标")
    private String saleMemberTypeIcon;


    @Schema(description = "卖家姓名", requiredMode = Schema.RequiredMode.REQUIRED, example = "卖家姓名")
    private String saleNickname;

    @Schema(description = "卖家电话", requiredMode = Schema.RequiredMode.REQUIRED, example = "卖家电话")
    private String saleMobile;

    @Schema(description = "买家收货地址", requiredMode = Schema.RequiredMode.REQUIRED, example = "发货地址")
    private String buyReceiveAddress;

    @Schema(description = "买家公司名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "卖家公司名称")
    private String BuyCompanyName;

    @Schema(description = "当前用户是卖家还是卖价", requiredMode = Schema.RequiredMode.REQUIRED, example = "当前用户是卖家还是卖价")
    private Integer identity;

    @Schema(description = "聊天信息id", requiredMode = Schema.RequiredMode.REQUIRED, example = "聊天信息id")
    private Long chatId;

    @Schema(description = "退货物流单号", example = "退货物流单号")
    private String salesLogisticsNo;

    @Schema(description = "退货图片", example = "退货图片")
    private String salesImages;

    @Schema(description = "地区名称", example = "地区名称")
    private String buyAreaName;

    @Schema(description = "地区名称", example = "地区名称")
    private String areaName;

    @Schema(description = "地区名称", example = "地区名称")
    private Integer areaId;

    @Schema(description = "地区名称", example = "地区名称")
    private String saleAreaName;

    @Schema(description = "确认 1是2否", example = "确认 1是2否")
    private Integer affirmDuty;

    @Schema(description = "发货视频", example = "发货视频")
    private String deliveryVideo;

    @Schema(description = "投诉曝光Id", requiredMode = Schema.RequiredMode.REQUIRED, example = "投诉曝光Id")
    private Long complainId;

    @Schema(description = "评价Id", requiredMode = Schema.RequiredMode.REQUIRED, example = "评价Id")
    private Long evaluateId;


    @Schema(description = "卖方类型", example = "法人代表")
    @ExcelProperty("卖方类型")
    private String saleBusinessTypeName;

    @Schema(description = "买方类型", example = "法人代表")
    @ExcelProperty("买方类型")
    private String buyBusinessTypeName;
}
